// debut dictionnaire

function dictionnaire(jsondata){
	this.data = jsondata;
}

dictionnaire.prototype = {
	getData : function() {
		if(this.data ==  null)
			this.data = getJSON();
		return this.data;
	},
	getEnvironnement : function(){
		var environnements = [];
		for(var i= 0; i < this.getData().length; i++){
			// on supprime les doublons
			if($.inArray(this.getData()[i].environnement, environnements) == -1)
				environnements.push(this.getData()[i].environnement);
		}
		return environnements;
	},
	getPlateforme : function (environnement) {
		var plateformes = [];
		for(var i= 0; i < this.getData().length; i++){
			// on supprime les doublons
			if(this.getData()[i].environnement == environnement &&  $.inArray(this.getData()[i].plateforme,plateformes) == -1)
				plateformes.push(this.getData()[i].plateforme);
		}
		return plateformes;
	},
	getReseau : function(environnement, plateforme) {
		var reseaux = [];
		for(var i= 0; i < this.getData().length; i++){
			// on supprime les doublons
			if(this.getData()[i].environnement == environnement && this.getData()[i].plateforme == plateforme &&  $.inArray(this.getData()[i].reseau,reseaux) == -1)
				reseaux.push(this.getData()[i].reseau);
		}
		return reseaux;
	},	
	getSite : function(environnement, plateforme, reseau){
		var sites = [];
		for(var i= 0; i < this.getData().length; i++){
			// on supprime les doublons
			if(this.getData()[i].environnement == environnement && this.getData()[i].plateforme == plateforme && this.getData()[i].reseau == reseau &&  $.inArray(this.getData()[i].site, sites) == -1)
				sites.push(this.getData()[i].site);
		}
		return sites;
	},
	getFlux : function(environnement, plateforme, reseau, site){
		// Site par defaut 'fo'
		var flux = [];
		for(var i= 0; i < this.getData().length && site == 'fo'; i++){
			// on supprime les doublons
			if(this.getData()[i].environnement == environnement && this.getData()[i].plateforme == plateforme && this.getData()[i].reseau == reseau && this.getData()[i].site == "fo" &&  $.inArray(this.getData()[i].flux, flux) == -1)
				flux.push(this.getData()[i].flux);
		}
		return flux;
	},
	getAgence : function(environnement, plateforme, reseau, site, flux){
		var agences = [];
		for(var i= 0; i < this.getData().length; i++){
			// on supprime les doublons
			if(this.getData()[i].environnement == environnement && this.getData()[i].plateforme == plateforme && this.getData()[i].reseau == reseau && this.getData()[i].site == "fo" && this.getData()[i].flux == flux &&  $.inArray(this.getData()[i].agence,agences) == -1)
				agences.push(this.getData()[i].agence);
		}
		return agences;
	},
	getOfficeId : function(environnement, plateforme, reseau, site, flux, agence){
		// Site par defaut 'fo'
		var officeids = [];
		for(var i= 0; i < this.getData().length && site == 'fo'; i++){
			// on supprime les doublons
			if(this.getData()[i].environnement == environnement && this.getData()[i].plateforme == plateforme && this.getData()[i].reseau == reseau && this.getData()[i].agence == agence && this.getData()[i].site == "fo" && this.getData()[i].flux == flux &&  $.inArray(this.getData()[i].officeid, officeids) == -1)
				officeids.push(this.getData()[i].officeid);
		}
		return officeids;
	},
	getUrl : function(environnement, plateforme, reseau, site, flux, agence, officeid){
		// Site par defaut 'fo'
		var urls = [];
		for(var i= 0; i < this.getData().length && site == 'fo'; i++){
			// on supprime les doublons
			if(this.getData()[i].environnement == environnement && this.getData()[i].agence == agence && this.getData()[i].site == "fo" && this.getData()[i].flux == flux && this.getData()[i].officeid == officeid &&  $.inArray(this.getData()[i].url, urls) == -1)
				urls.push(this.getData()[i].url);
		}
		
		for(var i= 0; i < this.getData().length && site != 'fo'; i++){
			// on supprime les doublons
			if(this.getData()[i].environnement == environnement && this.getData()[i].agence == agence &&  $.inArray(this.getData()[i].url, urls) == -1)
				urls.push(this.getData()[i].url);
		}
		return urls;
	}
};

function Site(id, environnement, plateforme, reseau, site, flux, agence, officeid, url, login, password){
	this.id = id;
	this.environnement = environnement;
	this.plateforme = plateforme;
	this.reseau = reseau;
	this.site = site;
	this.flux = flux;
	this.agence = agence;
	this.officeid = officeid;
	this.url = url;
	this.login = login;
	this.password = password;
}

function siteString(element){
	switch (element) {
	case 'id':
		return 'ID';
		break;
	case 'environnement':
		return 'Environnement';
		break;
	case 'plateforme':
		return 'PlateForme';
		break;
	case 'reseau':
		return 'Réseau';
		break;
	case 'site':
		return 'Site';
		break;
	case 'flux':
		return 'Flux';
		break;
	case 'agence':
		return 'Agence de voyages';
		break;
	case 'officeid':
		return 'OfficeId';
		break;
	case 'url':
		return 'URL';
		break;
	case 'login':
		return 'Nom d\'utilisateur';
		break;
	case 'password':
		return 'Mot de passe';
		break;
	default:
		break;
	}
}